import 'package:flutter/material.dart';

import 'package:get/get.dart';
import 'package:getx_learn/app/common/widgets/widgets.dart';

import '../controllers/dialog_demo_controller.dart';

class DialogDemoView extends GetView<DialogDemoController> {
   DialogDemoView({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    /**
     *   Future<T?> defaultDialog<T>({
        String title = "Alert", // 弹出的标题，默认（Alert)
        EdgeInsetsGeometry? titlePadding, // 标题的内边距，默认（EdgeInsets.all(8)）
        TextStyle? titleStyle, // 标题的样式
        Widget? content, // 弹出的内容，该值设置后middleText将无效
        EdgeInsetsGeometry? contentPadding, // 内容的内边距，默认（EdgeInsets.all(8)）
        VoidCallback? onConfirm, // 确认按钮回调
        VoidCallback? onCancel, // 取消按钮回调
        VoidCallback? onCustom, // 自定义按钮回调
        Color? cancelTextColor, // 取消按钮文字的颜色
        Color? confirmTextColor, // 确认按钮文字的颜色
        String? textConfirm, // 确认按钮的文字
        String? textCancel, // 取消按钮的文字
        String? textCustom, // 自定义按钮的文字
        Widget? confirm, // 确认按钮的组件
        Widget? cancel, // 取消按钮的组件
        Widget? custom, // 自定义按钮的组件
        Color? backgroundColor, // 弹出框的背景颜色
        bool barrierDismissible = true, // 是否可以通过点击背景关闭弹窗
        Color? buttonColor, // 按钮的文字颜色，根据按钮类型来设定不同的位置
        String middleText = "Dialog made in 3 lines of code", // 	中间内容区域显示的文字
        TextStyle? middleTextStyle, // 中间内容区域显示的文字样式
        double radius = 20.0, // 	弹出框的圆角大小，默认20
        //   ThemeData themeData,
        List<Widget>? actions, // 增加额外的子组件

        // onWillPop Scope
        WillPopCallback? onWillPop, // 拦截关闭之前做一些操作

        // the navigator used to push the dialog
        GlobalKey<NavigatorState>? navigatorKey, // 用于打开对话框的key
        })
     */


    return Scaffold(
      appBar: getAppBar(context: context, title: "Dialog Demo"),
      body: ListView(
        children: [
          ListTile(
            title: Text("简单使用"),
            subtitle: Text("展示简单的dialog"),
            onTap: () {
              Get.defaultDialog();
            },
          ),
          Divider(),
          ListTile(
            title: Text("简单使用"),
            subtitle: Text("展示简单的dialog"),
            onTap: () {
              Get.defaultDialog(
                  title: "弹出框",
                content: Column(
                  children: [
                    Text("第1行"),
                    Text("第2行"),
                    Text("第3行"),
                  ],
                ),
                  // 积极按钮（右侧按钮）点击事件
                  confirm: ElevatedButton(
                    onPressed: () {
                      Get.back();
                    },
                    child: Text("确认"),
                  ),
                  cancel: ElevatedButton(
                    onPressed: () {
                      Get.back();
                    },
                    child: Text("取消"),
                  ),);
            },
          ),
          Divider()
        ],
      ),
    );
  }
}
